package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

/**
 * 实现建议的记事本程序
 * 程序启动，可以在控制台陆续输入文字，并将所有输入的字符串全部写入文件note.txt中，写入文件的字符不需要考虑换行问题
 * 当在控制台单独输出"exit"时，程序退出。
 */
public class Test3 {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        /*
         文件流创建时有两种模式可选：覆盖模式和追加模式
         默认是覆盖模式
         覆盖模式：是文件创建时如果指定文件存在，会将该文件的内容清空再写入
         追加模式：是文件创建时如果指定文件存在，会将该文件的内容保留，并在文件末尾追加新内容
         对应的构造器：
         覆盖模式:
         FileOutputStream(String path)
         FileOutputStream(File file)


         追加模式:
         FileOutputStream(String path, boolean append)
         FileOutputStream(File file, boolean append)
         当第二个参数为true时，表示以追加模式打开文件，否则以覆盖模式打开文件
         */
        FileOutputStream fos = new FileOutputStream("note.txt", true);
        System.out.println("请输入，若想退出请输入“exit");
        while (true){
            String line = scanner.nextLine();
            if ("exit".equals(line)){
                break;
            }
            byte[] data = line.getBytes(StandardCharsets.UTF_8);
            fos.write(data);
            fos.write(System.lineSeparator().getBytes(StandardCharsets.UTF_8));
        }
        System.out.println("再见！");
        fos.close();
    }
}
